package com.doit.spark.day03

import com.doit.spark.day01.utils.SparkUtil
import org.apache.spark.rdd.RDD

/**
 * @DATE 2022/1/5/15:47
 * @Author MDK
 * @Version 2021.2.2
 * */
object C09_Aggregate {
  def main(args: Array[String]): Unit = {
    val sc = SparkUtil.getSc
    val rdd: RDD[String] = sc.textFile("data/word1.txt")
    val words: RDD[String] = rdd.flatMap(_.split("\\s+"))
    val wordone = words.map((_, 1))

    /*
    * 参数一  默认值 只参与局部运算 不参与全局运算
    * 参数二  1  分区内数据的计算逻辑
    *        2  各个分区计算结果  的计算逻辑
    */
    val resRDD: RDD[(String, Int)] = wordone.aggregateByKey(10)(_ + _, _ + _)
//    resRDD.foreach(println)
    val rdd2 = sc.makeRDD(Seq[Int](1, 2, 3, 4, 5, 6), 4)
    val res = rdd2.aggregate(10)(_ + _, _ + _)
    println(res)

  }
}
